const target = {
  a: 0,
  b: 456
};
const next = {
  a: 789,
  c: 101
};

// const result = Object.assign(target, next);
// // 当 Object.assign 传入两个参数时，第一个参数会被
// console.log(target);// { a: 789, b: 456, c: 101 }
// console.log(result);// { a: 789, b: 456, c: 101 }
// // 这么多年来一直以为，Object.assign 的方法是从前往后执行的，反了！！！
// console.log(target === result);// true

const result = Object.assign({}, target, next);
// 当 Object.assign 传入两个参数时，第一个参数会被
console.log(target);// { a: 123, b: 456 }
console.log(result);// { a: 789, b: 456, c: 101 }
// 这么多年来一直以为，Object.assign 的方法是从前往后执行的，反了！！！
console.log(target === result);// false
